#include <string>
#include <iostream>

int main()
{
    std::string str0{"hello"};

    std::string&& str1 = std::move(str0); // 未发生move，只是引用
    str0 += '!';
    std::cout << str0 << std::endl;
    std::cout << str1 << std::endl;

    std::cout << "------" << std::endl;
    std::string str2(str1);
    std::cout << str0 << std::endl;
    std::cout << str1 << std::endl;
    std::cout << str2 << std::endl;

    std::cout << "------" << std::endl;
    std::string str3(std::move(str1)); // 移动构造
    // std::string str3(str1);
    std::cout << str0 << " is " << str0.empty() << std::endl; // 引用
    std::cout << str1 << " is " << str1.empty() << std::endl;
    std::cout << str2 << std::endl; 
    std::cout << str3 << std::endl; 
}
